@@ -10,7 +10,7 @@ gem 'bootstrap-kaminari-views', '~> 0.0.2' |
||
| 10 | 10 |
gem 'rufus-scheduler', '~> 3.0.7', require: false |
| 11 | 11 |
gem 'json', '~> 1.8.1' |
| 12 | 12 |
gem 'jsonpath', '~> 0.5.3' |
| 13 |
-gem 'twilio-ruby', '~> 3.10.0' |
|
| 13 |
+gem 'twilio-ruby', '~> 3.11.5' |
|
| 14 | 14 |
gem 'ruby-growl', '~> 4.1.0' |
| 15 | 15 |
|
| 16 | 16 |
gem 'delayed_job', '~> 4.0.0' |
@@ -40,7 +40,7 @@ gem 'nokogiri', '~> 1.6.1' |
||
| 40 | 40 |
|
| 41 | 41 |
gem 'wunderground', '~> 1.2.0' |
| 42 | 42 |
gem 'forecast_io', '~> 2.0.0' |
| 43 |
-gem 'rturk', '~> 2.11.0' |
|
| 43 |
+gem 'rturk', '~> 2.12.1' |
|
| 44 | 44 |
|
| 45 | 45 |
gem 'twitter', '~> 5.7.1' |
| 46 | 46 |
gem 'twitter-stream', github: 'cantino/twitter-stream', branch: 'master' |
@@ -215,7 +215,7 @@ GEM |
||
| 215 | 215 |
rspec-core (~> 2.14.0) |
| 216 | 216 |
rspec-expectations (~> 2.14.0) |
| 217 | 217 |
rspec-mocks (~> 2.14.0) |
| 218 |
- rturk (2.11.3) |
|
| 218 |
+ rturk (2.12.1) |
|
| 219 | 219 |
erector |
| 220 | 220 |
nokogiri |
| 221 | 221 |
rest-client |
@@ -263,7 +263,7 @@ GEM |
||
| 263 | 263 |
treetop (1.4.15) |
| 264 | 264 |
polyglot |
| 265 | 265 |
polyglot (>= 0.3.1) |
| 266 |
- twilio-ruby (3.10.1) |
|
| 266 |
+ twilio-ruby (3.11.5) |
|
| 267 | 267 |
builder (>= 2.1.2) |
| 268 | 268 |
jwt (>= 0.1.2) |
| 269 | 269 |
multi_json (>= 1.3.0) |
@@ -289,7 +289,7 @@ GEM |
||
| 289 | 289 |
macaddr (~> 1.0) |
| 290 | 290 |
warden (1.2.3) |
| 291 | 291 |
rack (>= 1.0) |
| 292 |
- webmock (1.13.0) |
|
| 292 |
+ webmock (1.17.4) |
|
| 293 | 293 |
addressable (>= 2.2.7) |
| 294 | 294 |
crack (>= 0.3.2) |
| 295 | 295 |
weibo_2 (0.1.6) |
@@ -337,14 +337,14 @@ DEPENDENCIES |
||
| 337 | 337 |
rr |
| 338 | 338 |
rspec |
| 339 | 339 |
rspec-rails |
| 340 |
- rturk (~> 2.11.0) |
|
| 340 |
+ rturk (~> 2.12.1) |
|
| 341 | 341 |
ruby-growl (~> 4.1.0) |
| 342 | 342 |
rufus-scheduler (~> 3.0.7) |
| 343 | 343 |
sass-rails (~> 4.0.0) |
| 344 | 344 |
select2-rails (~> 3.5.4) |
| 345 | 345 |
shoulda-matchers |
| 346 | 346 |
therubyracer (~> 0.12.1) |
| 347 |
- twilio-ruby (~> 3.10.0) |
|
| 347 |
+ twilio-ruby (~> 3.11.5) |
|
| 348 | 348 |
twitter (~> 5.7.1) |
| 349 | 349 |
twitter-stream! |
| 350 | 350 |
typhoeus (~> 0.6.3) |
@@ -7,17 +7,16 @@ module Agents |
||
| 7 | 7 |
cannot_create_events! |
| 8 | 8 |
|
| 9 | 9 |
description <<-MD |
| 10 |
- The TwilioAgent receives and collects events and sends them via text message or gives you a call when scheduled. |
|
| 10 |
+ The TwilioAgent receives and collects events and sends them via text message (up to 160 characters) or gives you a call when scheduled. |
|
| 11 | 11 |
|
| 12 |
- It is assumed that events have a `message`, `text`, or `sms` key, the value of which is sent as the content of the text message/call. You can use Event Formatting Agent if your event does not provide these keys. |
|
| 12 |
+ It is assumed that events have a `message`, `text`, or `sms` key, the value of which is sent as the content of the text message/call. You can use the EventFormattingAgent if your event does not provide these keys. |
|
| 13 | 13 |
|
| 14 | 14 |
Set `receiver_cell` to the number to receive text messages/call and `sender_cell` to the number sending them. |
| 15 | 15 |
|
| 16 | 16 |
`expected_receive_period_in_days` is maximum number of days that you would expect to pass between events being received by this agent. |
| 17 | 17 |
|
| 18 |
- If you would like to receive calls, then set `receive_call` to true. `server_url` needs to be |
|
| 19 |
- filled only if you are making calls. Dont forget to include http/https in `server_url`. |
|
| 20 |
- |
|
| 18 |
+ If you would like to receive calls, set `receive_call` to `true`. In this case, `server_url` must be set to the URL of your |
|
| 19 |
+ Huginn installation (probably "https://#{ENV['DOMAIN']}"), which must be web-accessible. Be sure to set http/https correctly.
|
|
| 21 | 20 |
MD |
| 22 | 21 |
|
| 23 | 22 |
def default_options |
@@ -43,13 +42,14 @@ module Agents |
||
| 43 | 42 |
@client = Twilio::REST::Client.new options['account_sid'], options['auth_token'] |
| 44 | 43 |
memory['pending_calls'] ||= {}
|
| 45 | 44 |
incoming_events.each do |event| |
| 46 |
- message = (event.payload['message'] || event.payload['text'] || event.payload['sms']).to_s |
|
| 47 |
- if message != "" |
|
| 45 |
+ message = (event.payload['message'].presence || event.payload['text'].presence || event.payload['sms'].presence).to_s |
|
| 46 |
+ if message.present? |
|
| 48 | 47 |
if options['receive_call'].to_s == 'true' |
| 49 | 48 |
secret = SecureRandom.hex 3 |
| 50 | 49 |
memory['pending_calls'][secret] = message |
| 51 | 50 |
make_call secret |
| 52 | 51 |
end |
| 52 |
+ |
|
| 53 | 53 |
if options['receive_text'].to_s == 'true' |
| 54 | 54 |
message = message.slice 0..160 |
| 55 | 55 |
send_message message |
@@ -71,11 +71,11 @@ module Agents |
||
| 71 | 71 |
def make_call(secret) |
| 72 | 72 |
@client.account.calls.create :from => options['sender_cell'], |
| 73 | 73 |
:to => options['receiver_cell'], |
| 74 |
- :url => post_url(options['server_url'],secret) |
|
| 74 |
+ :url => post_url(options['server_url'], secret) |
|
| 75 | 75 |
end |
| 76 | 76 |
|
| 77 |
- def post_url(server_url,secret) |
|
| 78 |
- "#{server_url}/users/#{self.user.id}/web_requests/#{self.id}/#{secret}"
|
|
| 77 |
+ def post_url(server_url, secret) |
|
| 78 |
+ "#{server_url}/users/#{user.id}/web_requests/#{id}/#{secret}"
|
|
| 79 | 79 |
end |
| 80 | 80 |
|
| 81 | 81 |
def receive_web_request(params, method, format) |